﻿using System.Threading;
using System.Threading.Tasks;

namespace WholeSlideImageLibrary
{
    public abstract class FileSourceInfo
    {
        public virtual string? FileName { get; }

        public abstract long FileSize { get; }

        public abstract ValueTask<FileSourceReader> OpenAsync(CancellationToken cancellationToken);

        public virtual ValueTask<DirectorySourceInfo?> GetContainingDirectoryAsync(CancellationToken cancellationToken = default) => default;
    }
}
